c中a={b=(c=c==3)*5*2-3;是什么意思

来源:百度知道 编辑:UC知道 时间:2024/07/02 06:27:20
#include <stdio.h>
main()
{
int a,b ,c=3;
a={b=(c=c==3)*5*2-3;
printf("a=%d,b=%d,c=%d,\n",a,b,c);
}
输出的a,b,c各是多少,a={b=(c=c==3)*5*2-3是怎么运行的。

你写的这句话有关问题,很明显不对,
a={b=(c=c==3)*5*2-3; 大括号只有一个,如果按下面的写的话a=7,b=7,c=1,
int a,b ,c=3;
a=(b=(c=(c==3))*5*2-3);
printf("a=%d,b=%d,c=%d,\n",a,b,c);
意思是首先执行c=(c==3),如果C==3,返回TRUE,c=1,然后b = 1*5*2-3 =7;
a = b = 7;

abc 都是3 结果是7

c==3 为1
c=c==3 则 c=1
b=1
a=1*5*2-3=7

还有 你的 代码应该这样写

#include <stdio.h>
main()
{
int a,b ,c=3;
a=b=(c=c==3)*5*2-3;
printf("a=%d,b=%d,c=%d,\n",a,b,c);
}

你这程序分明有问题啊
a={b=(c=c==3)*5*2-3;里面的“{”没有“}”啊,是多余的啊
再说了,等式里面应该不用{}符号啊

少了个大括号啊!大括号放在那里啊

a=27 b=3 c=3